A FPGA is a programmable logic device with uncommitted logic and routing elements. The implementation of logic consists of mapping the logic into Look Up Tables (LUT's) and LUT's into Programmable Logic Blocks (PLB's). The circuit netlist at the gate level is first packed into k input LUT's as available in the PLB architecture. The circuit behavior is also important to be analyzed in terms of the delay that under the unit delay model is the maximum sum of the delays of LUT's in series, by assigning a delay of unity to each of them. The job of the mapper is to map the given logic into as few LUT's as possible.
Various techniques exist for mapping a given logic into FPGA. The focus in all such mapping techniques is to optimize the delay or area as the user may require. Various delay optimization algorithms exist which try to reduce the critical path length under the unit delay model trading off the area to some extent. As delay is an important consideration on only the critical path, algorithms like Flowmap-r have been developed which focus on the delay reduction only on the critical path, focusing on area optimization on the rest.
The objective of the mapping process is to consume as few LUT's as possible, but that is achievable to some extent.
FIG. 1 illustrates the flow diagram of the FPGA development process and role of the technology mapping in it. 1.1 in the figure indicates the Design Entry as entering the design into the system for hardware realization of the design. Logic Synthesis 1.2 performs the hardware realization of the design entered depending on the target device. The optimized netlist is then mapped into LUT as shown in the 1.3 that is followed by Placement and Route function as in block 1.4. This block implements the positioning and configuration of the interconnects of the logic blocks. The bit stream is generated as in the Device programming unit block 1.5 for configuring the target device. 1.6 illustrates the configured target device after the completion of the design cycle.
FIG. 2 illustrates the diagram of a prior art method for mapping logic/technology in an FPGA. The circular nodes (a-m) represent a logic for two input LUT's. It is evident from the figure that the path from nodes a and b to k is quite long as compared to the path through c, d and e. As a result the signal generation at k has to wait for the signal from a through i. This makes the path a, n, f, i, j as a critical path leading to a critical fan-in node k. A critical path in a circuit is a chain of circuit elements or the longest path such that the signal takes the maximum time to reach the final output through that given path. In most of the cases, nodes (LUTs) falling in the critical path have one or more fan-ins which are critical (have the maximum delay) while the rest of the input take lesser time so are not that critical. This essentially means that a signal at the output of node cannot be generated till all the input signals arrive, in other words non-critical signals have to wait for signals on the critical path. This is what essentially gives rise to a critical path for the whole circuit.
Therefore, it is realized to be essential to provide a scheme to reduce the delay incurred during the technology mapping in an FPGA. Embodiments of the present invention provide such a scheme.